/**
 * ui框架处理的js
 * Created by yanxs on 2019/7/26.
 */

$(function(){
    'use strict';
    var no = 0;
    var active_tab = new Array();
    var is_menu = 0;

    $(document).ready(function () {
        var b_height = ( parent.$(".sidebar").height()/2);
        console.log(parent.$(".header-next-btn"));
        parent.$(".header-next-btn").css("top",b_height+"px")
        parent.$(".header-next-btn").show();
    });
    parent.$("#open-close").click(function(){
        if (parent.$("#open-close").attr("data-action")=="hide")
        {
            //parent.$("#open-close").find("img").attr("src","/images/menu-fold.png");
            parent.$("#open-close").find("i").removeClass("icon-menu_fold");
            parent.$("#open-close").find("i").addClass("icon-menu_unfold");
            parent.$("#open-close").attr("data-action","show");
        }else{
            //parent.$("#open-close").find("img").attr("src","/images/menu-unfold.png");
            parent.$("#open-close").find("i").removeClass("icon-menu_unfold");
            parent.$("#open-close").find("i").addClass("icon-menu_fold");
            parent.$("#open-close").attr("data-action","hide");
        }
    })
    //窗口大小变更事件
    $(window).resize(function() {
        var b_height = ( parent.$(".sidebar").height()/2);
        parent.$(".header-next-btn").css("top",b_height+"px");
        parent.$(".header-next-btn").show();

    });
    parent.$(".header-next-btn").click(function () {
        if (parent.$(".header-next-btn").attr("data-action")=="hide")
        {
            parent.$(".header-next-btn").find(".fa-angle-left").removeClass("fa-angle-left").addClass("fa-angle-right");
            parent.$(".header-next-btn").attr("data-action","show");
        }else{
            parent.$(".header-next-btn").find(".fa-angle-right").removeClass("fa-angle-right").addClass("fa-angle-left");
            parent.$(".header-next-btn").attr("data-action","hide");
        }
    });


    //重置菜单栏pdding值
    var hashUrl = window.location.hash;
    $(".os-padding").find(".os-content").css('padding',0);
    //获取当前hashurl
    if(hashUrl != '') {
        //获取实际路由
        var hashUrlNew = hashUrl.substring(1);
        $("#menuFrame"+no).attr('src',hashUrlNew);

        $(".nav-item>.menu-link").each(function(i,v){
            var curUrl = $(this).attr('data-url');

            if(hashUrlNew == curUrl && !$(this).hasClass('active')) {
                changePages($(this),0);
            }
            if (hashUrlNew == curUrl){
                is_menu = 1;
            }

        });

        if (is_menu == 0) {
            localStorage.removeItem("big_module");
            addTab("新页面",hashUrlNew);
        }


    }else {
        //自动触发菜单第一项
        //console.log($('body').find(".menu-link").html()+"ttt");
        //$('body').find(".menu-link").trigger("click", true);

        var firstUrl = typeof($('.os-content').find(".nav-item>.menu-link").eq(0).attr('data-url')) == "undefined" ? "/dashboard" : $('.os-content').find(".nav-item>.menu-link").eq(0).attr('data-url')
        $("#menuFrame"+no).attr('src',firstUrl);
        addTab("控制台",firstUrl);
    }


    $(".menu-link").on('click', function (event,is_son) {
        if(is_son == 'true') {
            var is_replace = 0;
        } else {
            var is_replace = 1;
        }
        //切换页面
        changePages($(this),is_replace);
    })

    //第三级触发，第二级和第一级都是选中状态
    $(".menu-lv-2").find('.nav-link').click(function(event,is_son){
        //补充第二级选中的状态(待实现)
    })

    //切换面面，如果is_replace为1 ，则切换右侧内容，否则只切换菜单
    function changePages(obj,is_replace)
    {
        $('.menu-link').removeClass('active');
        $('.has-treeview').removeClass('menu-open');
        $('.nav-treeview').hide();

        obj.addClass('active');
        obj.parents('.has-treeview').addClass('menu-open');
        obj.parents('.has-treeview').find('.nav-treeview').show();

        var title = obj.find('p').html();

        var crumb = obj.parents('.nav-treeview').prev().find('p').text()
        showCrumb(crumb+" / "+title);
        addTab(title,obj.attr('data-url'));
        //点击菜单时变动右侧内容
        if(is_replace == 1) {
            $("#menuFrame"+no).attr('src',obj.attr('data-url'));
        }
        var curUrl = obj.attr('data-url');
        //改变url栏地址
        var stateObject = {};
        var newUrl = curUrl;
        history.replaceState(stateObject,title,'/#'+newUrl);
        //次每次切换把上一次的url记录起来
    }
    function showCrumb(title) {
        $("#crumb").html(title);
    }
    function addTab(title,url)
    {
        $("#tab-list").find('.my-tab').removeClass("tab-active")
        for (var tem_i in active_tab) {
            if (active_tab[tem_i] ==url ) {
                $(".tab_no_"+tem_i).addClass("tab-active")
                $(".main-frame").hide();
                $("#menuFrame"+tem_i).show()
                return ;
            }
        }
        let tabNo = "tab_no_"+no;
        let orgi_no = no;
        $("#tab-list").append("<li class=\"my-tab tab-active "+tabNo+" \" data-val='"+no+"'><i class=' dot iconfont icon-dot11' style='margin-right:5px;font-size: 12px'></i>"+title+" <i style='font-size: 12px;margin-left:5px;' class='iconfont  icon-close4 tab-close'></i></li>");

        if (no == 0) {

        } else {
            orgi_no = no-1;
            let newdata =  $(".main-frame").eq(0).clone().attr('id',"menuFrame"+no).attr("src",url);
            $(".main-frame").hide();
            $(".main-frame:last").after(newdata.show())
        }
        active_tab[no] = url;
        no++;
        console.log(no)
        console.log(active_tab)
    }

    function changeMenuClick(obj,is_replace)
    {

        $('.menu-link').removeClass('active');
        $('.has-treeview').removeClass('menu-open');
        $('.nav-treeview').hide();

        obj.addClass('active');
        obj.parents('.has-treeview').addClass('menu-open');
        obj.parents('.has-treeview').find('.nav-treeview').show();

        var title = obj.find('p').html();
        var crumb = obj.parents('.nav-treeview').prev().find('p').text()
        showCrumb(crumb+" / "+title);
        //点击菜单时变动右侧内容
        if(is_replace == 1) {
            $("#menuFrame"+no).attr('src',obj.attr('data-url'));
        }
        var curUrl = obj.attr('data-url');
        //改变url栏地址
        var stateObject = {};
        var newUrl = curUrl;
        history.replaceState(stateObject,title,'/#'+newUrl);

        //对应大导航切换
        // let big_modules = obj.parent().attr("data-modules");
        // $(".bm-"+big_modules).trigger("click");

        //次每次切换把上一次的url记录起来
    }
    $("body").delegate(".my-tab","click",function(){
        $(".main-frame").hide();
        var cur_tab_no = $(this).attr("data-val")
        $(".my-tab").removeClass("tab-active")
        $(this).addClass("tab-active")
        $("#menuFrame"+cur_tab_no).show();
        //菜单指定
        $(".nav-item>.menu-link").each(function(i,v){
            var curUrl = $(this).attr('data-url');
            var gotoUrl = $("#menuFrame"+cur_tab_no).attr("src")

            if(gotoUrl == curUrl && !$(this).hasClass('active')) {
                changeMenuClick($(this),0);
            }

        });
    });
    $("body").delegate("#window-refresh","click",function(){
        window.location.reload();
    });

    $("body").delegate(".tab-close","click",function(){
        //获取当前编号
        var cur_no = $(this).parent().attr("data-val");
        var is_selected =  $(this).parent().hasClass("tab-active");
        var cur_item = '' ;
        //获取数组最后一个元素
        var num = -1  //数组有效元素长度
        for (var tem_j in active_tab) {
            if (cur_no == tem_j) {
                cur_item = active_tab[cur_no];
                active_tab[tem_j] = '';
            }
            //console.log(active_tab['tem_j'],)
            if (active_tab[tem_j] !='') {
                num = tem_j;
            }
        }
        console.log(num+"yanxs")

        if (num == -1) {
            if (cur_item != '') {
                active_tab[cur_no] = cur_item;
            }
            return false
        }
        $(this).parent().remove()

        console.log(num)
        //如果正好是当前选中的
        if (is_selected) {
            $(".tab_no_"+num).trigger("click")
        }
        $("#menuFrame"+cur_no).remove()
        return false;//阻止往下捕捉事件
    })

    //平台菜单点击
    $("body").delegate(".oms_mode_tab",'click',function () {
        $(this).addClass("nav_status_current").siblings(".oms_mode_tab").removeClass("nav_status_current");
        var flag = $(this).attr('data-val')
        $.ajax({
            url : '/change_flag',
            type: 'POST',
            data:{flag:flag},
            dataType : 'JSON',
            headers: {
                'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
            },
            success : function(data){
                window.parent.location.href=data.data.goto;
                window.parent.location.reload()
            },
            error : function(){
                tip_note('程序出现错误')
            }
        });


    })


    $("body").delegate(".big-modules",'click',function (){
        $(this).addClass("modules-active").siblings("li").removeClass("modules-active");
        let cur_modules = $(this).attr("data-val");
        $('.nav-sidebar').find(".nav-item").hide();
        $("."+cur_modules).show();
        var firstUrl = typeof($("."+cur_modules).find(".nav-item>.menu-link").eq(0).attr('data-url')) == "undefined" ? "/dashboard" : $("."+cur_modules).find(".nav-item>.menu-link").eq(0).attr('data-url')
        $("#menuFrame"+no).attr('src',firstUrl)
        //存储当前触发的模块
        localStorage.setItem("big_module",cur_modules);
    })
    if (hashUrl == "") {
        let cur_modules = localStorage.getItem("big_module");
        if (cur_modules ) {
            //alert(cur_modules);
            $(".bm-"+cur_modules).trigger("click")
        }
        $(".bm-home").trigger("click")
    } else {
        let cur_modules = $(".has-treeview").find(".active").parent("li").attr("data-modules")
        if (typeof (cur_modules) != "undefined") {
            $(".bm-"+cur_modules).trigger("click")
        }
    }

    $("#addtab").on('click',function (event,data){
        console.log(data)
        addTab(data.tit,data.url)
    })
})
